Pretty Good Privacy (PGP)

  • A data encryption/decryption tool
  • Can be used to encrypt and authenticate email, files, etc.
  • Created by Phil Zimmermann in 1991
  • A practical hybrid system that uses symmetric and asymmetric crypto

image source: wikipedia


In [1]:
#Use GCM
def enc_key(public_key, message):
    pass

def dec_key(private_key, ciphertext):
    pass

def enc_msg(key, iv, msg):
    pass

def dec_msg(key, iv, ciphertext):
    pass

In [ ]:
k1 = os.urandom(16)
iv = os.urandom(16)
msg = b"PyCon 2017 Crypto!!"

cipher = enc_msg(k1, iv, msg)
encrypted_key = enc_key(public_key, k1)

decrypted_key = dec_key(private_key, encrypted_key)
plaintext = dec_msg(decrypted_key, iv, cipher)